<configuration mode="DEV" version="1.0.1">
	<!-- The computer section is used to define how the computer will be configured for items like time zone, enabling remote desktop, setting passwords for key users, windows updates, etc. -->
	<computer name="SampleServerDEV" rename="1" remoteDesktop="1" timeZone="Eastern Standard Time" updateHelp="0">
		<!-- Enable Autologon to help with the multple reboots required for a server setup -->
		<autoLogon enabled="1" userId="{CURRENT USER}" />

		<!-- Network is used to set the IP address, netmask and DNS or to just enable/disable the warning if DHCP is enabled -->
		<network warnOnDHCP="1" disableLoopbackCheck="1" />
		
		<!-- ieSecurity is used to set the ESC mode for IE -->
		<ieSecurity admin="0" user="1"/>
		
		<!-- wupdates is used to setup and configure how windows updates are handled -->
		<wupdates enabled="3" update="1" />
		
		<!-- security is used to create local accounts, set the passwords for a set of standard accounts 
					(normally the Administrator and the current user), and add users to local groups -->
		<security>
			<!-- Create or Setup Local Users -->
			<!--
			<account name="{CURRENT USER}" password="{DEFAULT PASSWORD}" />
			<account name="Administrator" password="{DEFAULT PASSWORD}" />
			-->

			<!-- Add accouts to local Administrators group. Note: The account must exist before the script is executed or as part of the local account creation -->
			<group name="Administrators">
				<account name="{CURRENT USER}" />
			</group>
		</security>

		<!-- Windows Services -->
		<services>
			<!-- Secondary Logon Service is needed for PowerPivot Thumbnail generation -->
			<service name="seclogon" startupMode="Automatic" start="1" />
		</services>

	</computer>

	<!-- defaultPassword specifies the default password that will be used for ALL accounts unless explicity defined -->
	<defaultPassword>pass@word1</defaultPassword>
	
	<!-- domain is used to indicate if a new AD domain is being created or joined -->
	<domain name="contoso.dev" netBIOS="contoso-dev" action="create" mode="Win2012">
		<!-- The ou/account heirarchy below is used to setup accounts in AD in builk -->
		<ou name="Applications">
			<ou name="Database">
				<account name="sqlDB.svc" description="SQL Server Database Service Account" password="{DEFAULT PASSWORD}" type="sqlDB"/>
				<account name="sqlAgent.svc" description="SQL Server Agent Service Account" password="{DEFAULT PASSWORD}" type="sqlAgent"/>
				<account name="sqlSSRS.svc" description="SQL Server Reporting Services Service Account" password="{DEFAULT PASSWORD}" type="sqlSSRS"/>
				<account name="sqlSSAS.svc" description="SQL Server Analysis Services Service Account" password="{DEFAULT PASSWORD}" type="sqlSSAS"/>
			</ou>
		</ou>
		<ou name="Sample Users">
			<account name="jsmith" displayName="John Smith" givenName="John" surname="Smith" title="CEO" description="" password="{DEFAULT PASSWORD}" type="user"/>
			<ou name="Human Resources">
				<account name="jwells" displayName="Jane Wells" givenName="Jane" surname="Wells" title="VP of Human Resources" manager="jsmith" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="ppaulson" displayName="Peter Paulson" givenName="Peter" surname="Paulson" title="Benefits Administrator" manager="jwells" description="" password="{DEFAULT PASSWORD}" type="user"/>
			</ou>
			<ou name="Information Systems">
				<account name="sanderson" displayName="Shawn Anderson" givenName="Shawn" surname="Anderson" title="Chief Technology Officer" manager="jsmith" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<ou name="Development">
					<account name="tholmes" displayName="Todd Holmes" givenName="Todd" surname="Holems" title="Director of Development" manager="sanderson" description="" password="{DEFAULT PASSWORD}" type="user"/>
					<account name="dsmith" displayName="Doug Smith" givenName="Doug" surname="Smith" title="Development Lead" manager="tholmes" description="" password="{DEFAULT PASSWORD}" type="user"/>
					<account name="acohen" displayName="Adam Cohen" givenName="Adam" surname="Cohen" title="Software Architect" manager="tholmes" description="" password="{DEFAULT PASSWORD}" type="user"/>
					<group name="Development Team" samAccount="DevelopmentTeam" scope="Global" category="Security">
						<ou name="Development" dn="OU=Information Systems, OU=Sample Users" />
					</group>
				</ou>
				<ou name="Infrastructure">
					<account name="rjohnson" displayName="Roderick Johnson" givenName="Roderick" surname="Johnson" title="Network Manager" manager="sanderson" description="" password="{DEFAULT PASSWORD}" type="user"/>
					<account name="jsmit" displayName="Jermal Smith" givenName="Jermal" surname="Smith" title="Infrastructure Architect" manager="rjohnson" description="" password="{DEFAULT PASSWORD}" type="user"/>
					<account name="spatel" displayName="Sam Patel" givenName="Sam" surname="Patel" title="Security Architect" manager="rjohnson" description="" password="{DEFAULT PASSWORD}" type="user"/>
					<group name="Network Admins" samAccount="NetworkAdmins" scope="Global" category="Security">
						<ou name="Infrastructure" dn="OU=Information Systems, OU=Sample Users" />
					</group>
				</ou>
			</ou>
			<ou name="PMO">
				<account name="jperkins" displayName="Jon Perkins" givenName="Jon" surname="Perkins" title="Director of PMO" manager="jsmith" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="kbaerg" displayName="Karen Baerg" givenName="Karen" surname="Baerg" title="Project Manager" manager="jperkins" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="jwasiek" displayName="Jan Wasiek" givenName="Jan" surname="Wasiek" title="Project Manager" manager="jperkins" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<group name="Project Managers" samAccount="ProjectManagers" scope="Global" category="Security">
					<ou name="PMO" dn="OU=Sample Users" />
				</group>
			</ou>
			<ou name="Finance">
				<account name="crogers" displayName="Chris Rogers" givenName="Chris" surname="Rogers" title="Chief Finance Officer" manager="jsmith" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="cmcadams" displayName="Crystal McAdams" givenName="Crystal" surname="McAdams" title="Procurement" manager="crogers" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="hholland" displayName="Holly Holland" givenName="Holly" surname="Holland" title="Accounts Payable Clerk" manager="cmcadams" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="pdavis" displayName="Peter Davis" givenName="Peter" surname="Davis" title="Accounts Receivable Clerk" manager="cmcadams" description="cmcadams" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="nrader" displayName="Nathan Rader" givenName="Nathan" surname="Rader" title="Procurement" manager="crogers" description="" password="{DEFAULT PASSWORD}" type="user"/>
			</ou>
			<ou name="Sales">
				<account name="kwhite" displayName="Kathy White" givenName="Kathy" surname="White" title="VP of Sales" manager="jsmith" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="ncrocker" displayName="Nick Crocker" givenName="Nick" surname="Crocker" title="Sales Manager" manager="kwhite" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="scorana" displayName="Sara Corana" givenName="Sara" surname="Corana" title="North East Sales Rep" manager="ncrocker" description="" password="{DEFAULT PASSWORD}" type="user"/>
			</ou>
			<ou name="Marketing">
				<account name="sash" displayName="Sally Ash" givenName="Sally" surname="Ash" title="VP of Marketing" manager="jsmith" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<account name="cfold" displayName="Christine Fold" givenName="Christine" surname="Fold" title="Marketing Manager" manager="sash" description="" password="{DEFAULT PASSWORD}" type="user"/>
				<group name="Marketing Managers" samAccount="MarketingManagers" scope="Global" category="Security">
					<accout name="sash"/>
				</group>
			</ou>
			<group name="Project Server Admins" samAccount="ProjectServerAdmins" scope="Global" category="Security">
				<account name="spAdmin" />
				<account name="sanderson" />
				<account name="jperkins" />
				<account name="jsmith" />
			</group>
			<group name="Project Server Users" samAccount="ProjectServerUsers" scope="Global" category="Security">
				<ou name="Sample Users" />
			</group>
		</ou>
		<ou name="Users">
			<account name="spAdmin" description="SharePoint Administrator Account" password="{DEFAULT PASSWORD}" type="domainadmin"/>
		</ou>
	</domain>

	<!-- 
		DNS records to create (assumes DNS can be configured by security context running the script)
	-->
	<dns zone="contoso.dev">
		<record type="a" name="{COMPUTER NAME}" address="{IP ADDRESS}"/>
		<record type="cname" name="{COMPUTER NAME}" alias="corp"/>
	</dns>

	<!-- 
		Windows Server Features/Packages to install 
	-->
	<features source="{ONLINE}">
		<feature>NET-Framework-Core</feature>
		<feature>Net-Framework-Features</feature>
		<feature>Web-Server</feature>
		<feature>Web-WebServer</feature>
		<feature>Web-Common-Http</feature>
		<feature>Web-Static-Content</feature>
		<feature>Web-Default-Doc</feature>
		<feature>Web-Dir-Browsing</feature>
		<feature>Web-Http-Errors</feature>
		<feature>Web-App-Dev</feature>
		<feature>Web-Asp-Net</feature>
		<feature>Web-Net-Ext</feature>
		<feature>Web-ISAPI-Ext</feature>
		<feature>Web-ISAPI-Filter</feature>
		<feature>Web-Health</feature>
		<feature>Web-Http-Logging</feature>
		<feature>Web-Log-Libraries</feature>
		<feature>Web-Request-Monitor</feature>
		<feature>Web-Http-Tracing</feature>
		<feature>Web-Security</feature>
		<feature>Web-Basic-Auth</feature>
		<feature>Web-Windows-Auth</feature>
		<feature>Web-Filtering</feature>
		<feature>Web-Digest-Auth</feature>
		<feature>Web-Performance</feature>
		<feature>Web-Stat-Compression</feature>
		<feature>Web-Dyn-Compression</feature>
		<feature>Web-Mgmt-Tools</feature>
		<feature>Web-Mgmt-Console</feature>
		<feature>Web-Mgmt-Compat</feature>
		<feature>Web-Metabase</feature>
		<feature>Application-Server</feature>
		<feature>AS-Web-Support</feature>
		<feature>AS-TCP-Port-Sharing</feature>
		<feature>AS-WAS-Support</feature>
		<feature>AS-HTTP-Activation</feature>
		<feature>AS-TCP-Activation</feature>
		<feature>AS-Named-Pipes</feature>
		<feature>AS-Net-Framework</feature>
		<feature>WAS</feature>
		<feature>WAS-Process-Model</feature>
		<feature>WAS-NET-Environment</feature>
		<feature>WAS-Config-APIs</feature>
		<feature>Web-Lgcy-Scripting</feature>
		<feature>Windows-Identity-Foundation</feature>
		<feature>Server-Media-Foundation</feature>
		<feature>Xps-Viewer</feature>
	</features>

	<!-- 
		Chocolatey Packages to install 
	-->
	<chocolatey enabled="1">
		<package name="notepadplusplus">
			<installCheck type="file" folder="{PROGRAMFILESX86}\NotePad++" file="notepad++.exe"/>
		</package>
		<package name="7zip">
			<installCheck type="file" folder="{PROGRAMFILES}\7-zip" file="7zFM.exe"/>
		</package>
		<package name="boxstarter">
			<installCheck type="poscommand" commandName="Install-BoxstarterPackage"/>
		</package>
		<package name="ChocolateyGUI">
			<installCheck type="file" folder="{PROGRAMFILESX86}\ChocolateyGUI" file="ChocolateyGUI.exe"/>
		</package>
		<package name="7zip.commandline">
			<installCheck type="file" folder="{PROGRAMFILES}\7-zip" file="7z.exe"/>
		</package>
		<package name="sysinternals">
			<installCheck type="file" folder="{SYSTEMDRIVE}\sysinternals" file="pslist.exe"/>
		</package>
		<package name="fiddler4">
			<installCheck type="file" folder="{PROGRAMFILESX86}\Fiddler2" file="Fiddler.exe"/>
		</package>
		<package name="linqpad4">
			<installCheck type="file" folder="{PROGRAMFILESX86}\LINQPad4" file="LINQPad.exe"/>
		</package>
		<package name="expresso">
			<installCheck type="file" folder="{PROGRAMFILESX86}\Ultrapico\Expresso" file="Expresso.exe"/>
		</package>
		<package name="logparser">
			<installCheck type="file" folder="{PROGRAMFILESX86}\Log Parser 2.2" file="logparser.exe"/>
		</package>
		<package name="webpi">
			<installCheck type="file" folder="{PROGRAMFILES}\Microsoft\Web Platform Installer" file="WebPlatformInstaller.exe" versionMajor="7" versionMinor="1" versionBuild="40719" />
		</package>
		<package name="classic-shell">
			<!-- Install Classic shell only if we are running on a version of the OS before Windows Server 2012 R2 -->
			<installcheck type="osversion" platform="Win32NT" versionMajor="6" versionMinor="3" match="lt"/>
			<installCheck type="file" folder="{PROGRAMFILES}\Classic Shell" file="ClassicStartMenu.exe"/>
		</package>
	</chocolatey>

	<!-- 
		Application to install 
		Base Path indicates where the default location is for all of the software installs
		Prompt indicates if the script should pause with a prompt before starting the software install
	-->
	<applications baseFolder="c:\Software" prompt="0">
		<!-- 
			Application: SQL Server Developer Edition
			Notes: Install from an ISO and use the configuration file as the "answer file"
					Validate if install is complete by looking for the Ssms.exe (SQL Server Management Studio application)
					Pin an ICON for SQL Server Management Studio to the Taskbar
		-->
		<install type="sql" order="1" name="Microsoft SQL Server" iso="{BASE FOLDER}\en_sql_server_2012_developer_edition_with_service_pack_2_x64_dvd_4668513.iso" command="setup.exe" configFile="{SCRIPT FOLDER}\Config\SQL2012-Developer.ini" pwd="pass@word1" enabled="1">
			<args>
				<entry name="INSTANCEDIR" value="C:\Microsoft SQL Server"/>
				<entry name="ASDATADIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data" />
				<entry name="ASLOGDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Log" />
				<entry name="ASBACKUPDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Backup" />
				<entry name="ASTEMPDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Temp" />
				<entry name="ASCONFIGDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Config" />

				<entry name="ASSYSADMINACCOUNTS" value="Administrators"/>
				<entry name="SQLSYSADMINACCOUNTS" value="Administrators"/>

				<entry name="AGTSVCACCOUNT" value="SHAREPOINT\sqlAgent.svc"/>
				<entry name="AGTSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="ASSVCACCOUNT" value="SHAREPOINT\sqlSSAS.svc"/>
				<entry name="ASSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="SQLSVCACCOUNT" value="SHAREPOINT\sqlDB.svc"/>
				<entry name="SQLSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="RSSVCACCOUNT" value="SHAREPOINT\sqlSSRS.svc"/>
				<entry name="RSSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="SAPWD" value="{PASSWORD}"/>
			</args>
			<installCheck type="folder" folder="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data"/>
			<taskbarLink name="SQL Management Studio" folder="{PROGRAMFILESX86}\Microsoft SQL Server\110\Tools\Binn\ManagementStudio" file="Ssms.exe"/>
		</install>
		<!-- 
			Application: SQL Server Developer Edition - SSAS for PowerPivot
			Notes: Install from an ISO and use the configuration file as the "answer file"
					Validate if install is complete by looking for the SSAS folder
		-->
		<install type="sql" order="2" name="Microsoft SQL Server (PowerPivot)" iso="{BASE FOLDER}\en_sql_server_2012_developer_edition_with_service_pack_2_x64_dvd_4668513.iso" command="setup.exe" configFile="{SCRIPT FOLDER}\Config\SQL2012-Developer-POWERPIVOT.ini" pwd="pass@word1" enabled="1">
			<args>
				<entry name="INSTANCEDIR" value="C:\Microsoft SQL Server"/>
				<entry name="ASDATADIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\POWERPIVOT\Data" />
				<entry name="ASLOGDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\POWERPIVOT\Log" />
				<entry name="ASBACKUPDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\POWERPIVOT\Backup" />
				<entry name="ASTEMPDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\POWERPIVOT\Temp" />
				<entry name="ASCONFIGDIR" value="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\POWERPIVOT\Config" />

				<entry name="ASSYSADMINACCOUNTS" value="Administrators"/>
				<entry name="SQLSYSADMINACCOUNTS" value="Administrators"/>

				<entry name="AGTSVCACCOUNT" value="SHAREPOINT\sqlAgent.svc"/>
				<entry name="AGTSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="ASSVCACCOUNT" value="SHAREPOINT\sqlSSAS.svc"/>
				<entry name="ASSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="SQLSVCACCOUNT" value="SHAREPOINT\sqlDB.svc"/>
				<entry name="SQLSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="RSSVCACCOUNT" value="SHAREPOINT\sqlSSRS.svc"/>
				<entry name="RSSVCPASSWORD" value="{DEFAULT PASSWORD}"/>

				<entry name="SAPWD" value="{PASSWORD}"/>
			</args>
			<installCheck type="folder" folder="C:\Microsoft SQL Server\MSAS11.MSSQLSERVER\POWERPIVOT\Data"/>
		</install>
		<!-- 
			Application: Visual Studio 2013 Professional with Update 3
			Notes: Install from an ISO and use the configuration file as the "answer file"
					Validate if install is complete by looking for the devenv.exe (Visual Studio IDE Application)
					Pin an ICON for Visual Studio IDE to the Taskbar
		-->
		<install type="visualstudio" order="3" name="Microsoft Visual Studio" folder="{BASE FOLDER}\Visual Studio\vs2012\pro" command="vs_professional.exe" configFile="{SCRIPT FOLDER}\Config\VS2012-Pro.xml">
			<installCheck type="file" folder="{PROGRAMFILESX86}\Microsoft Visual Studio 11.0\Common7\IDE" file="devenv.exe"/>
			<taskbarLink name="Visual Studio" folder="{PROGRAMFILESX86}\Microsoft Visual Studio 11.0\Common7\IDE" file="devenv.exe"/>
		</install>

		<!-- 
			Application: Microsoft Office Professional
			Notes: Install from an ISO and use the configuration file as the "answer file"
					Validate if install is complete by looking for the winword.exe (Microsoft Word application)
					Pin an ICON for Word, Excel, and Outlook to the Taskbar
		-->
		<install type="msoffice" order="4" name="Microsoft Office" folder="{BASE FOLDER}\Microsoft Office\msopro2013" command="setup.exe" configFile="{SCRIPT FOLDER}\Config\MSOffice2013.xml">
			<installCheck type="file" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="winword.exe"/>
			<taskbarLink name="Word" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="winword.exe"/>
			<taskbarLink name="Excel" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="excel.exe"/>
			<taskbarLink name="Outlook" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="outlook.exe"/>
		</install>
		
		<!-- 
			Application: Microsoft Visio Professional
			Notes: Install from an ISO and use the configuration file as the "answer file"
					Validate if install is complete by looking for the visio.exe (Microsoft Visio application)
					Pin an ICON for Viso to the Taskbar
		-->
		<install type="msoffice" order="5" name="Microsoft Visio" folder="{BASE FOLDER}\Microsoft Office\msviso2013" command="setup.exe" configFile="{SCRIPT FOLDER}\Config\MSOffice2013.xml">
			<installCheck type="file" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="visio.exe"/>
			<taskbarLink name="Word" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="visio.exe"/>
		</install>

		<!-- 
			Application: Microsoft Project Professional
			Notes: Install from an ISO and use the configuration file as the "answer file"
					Validate if install is complete by looking for the winproj.exe (Microsoft Project application)
					Pin an ICON for Project to the Taskbar
		-->
		<install type="msoffice" order="6" name="Microsoft Project" folder="{BASE FOLDER}\Microsoft Office\msprj2013" command="setup.exe" configFile="{SCRIPT FOLDER}\Config\MSOffice2013.xml">
			<installCheck type="file" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="winproj.exe"/>
			<taskbarLink name="Word" folder="{PROGRAMFILESX86}\Microsoft Office\Office15" file="winproj.exe"/>
		</install>

	</applications>
</configuration>
